1. Мост между теорией и практикой: основы загрузки данных
Модели глубокого обучения процветают на чистых, последовательных данных, но реальные наборы данных по своей природе неупорядочены. Нам нужно перейти от готовых бенчмарков (например, MNIST) к управлению неструктурированными источниками, где сама загрузка данных — это сложная задача по координации. Основой этого процесса являются специализированные инструменты PyTorch для управления данными.
Основная проблема заключается в преобразовании сырых, разрозненных данных (изображений, текста, аудиофайлов), хранящихся на диске, в хорошо структурированный, стандартизированный формат формат тензоров , ожидаемый графическим процессором. Для этого требуется пользовательская логика для индексирования, загрузки, предварительной обработки и, наконец, батчинга.
Ключевые проблемы при работе с реальными данными
- Хаос данных: Данные разбросаны по нескольким каталогам, часто индексируются только файлами CSV.
- Требуется предобработка: Изображения могут требовать изменения размера, нормализации или аугментации перед конвертацией в тензоры.
- Цель повышения эффективности: Данные должны поступать на графический процессор в оптимизированных, неблокирующих пакетах, чтобы максимально ускорить обучение.
Dataset отвечает за «что» (как получить один образец и метку), в то время как класс DataLoader отвечает за «как» (эффективный батчинг, перемешивание и многопоточная доставка).
Run code to inspect active tensors
Dataset object?DataLoader parameter enables parallel loading of data using multiple CPU cores?CustomDataset for 10,000 images indexed by a single CSV file containing paths and labels.
The
__len__ method.Concept: Defines the epoch size.
__getitem__(self, index)?1. Look up file path using
index.2. Load the raw data (e.g., Image).
3. Apply the necessary
transforms.4. Return the processed Tensor and Label.